package com.changanw.middleware.mybatis;

/**
 * 默认连接工厂实现，用于打开连接
 * DefaultSqlSessionFactory，是使用mybatis最常用的类，这里我们简单的实现了一个版本。
 *  * 虽然是简单的版本，但是包括了最基本的核心思路。当开启SqlSession时会进行返回一个DefaultSqlSession
 *  * 这个构造函数中向下传递了Configuration配置文件，在这个配置文件中包括；Connection connection、Map dataSource、Map mapperElement。
 */
public class DefaultSqlSessionFactory implements SqlSessionFactory {

    private final Configuration configuration;

    public DefaultSqlSessionFactory(Configuration configuration) {
        this.configuration = configuration;
    }

    @Override
    public SqlSession openSession() {
        return new DefaultSqlSession(configuration.connection, configuration.mapperElement);
    }

}